const readline = require('readline-sync');

//1.算数运算符
// console.log(1 + '1');//字符串拼接
// console.log(1 + 1);//计算
// console.log(6 % 2);//0
// console.log(18 % 7);//4
// console.log(3 % 4);//3
// 自增自减 ++ --
//++在前，先自增再参与计算，++在后，先参与计算，再自增
// let i = 10, t = 10;
// i++;//i=i+1
// ++i;

// console.log(i++ + t);//20
// console.log(++i + t);
// console.log(i);

// let a = i++ + ++i + i + --t;//43
//10+ 12 +12 +9
// let b = --i + t-- + i++;//31
// 11+9+11
// console.log(a, b);

//2.赋值运算符
// let a = 10;
// a += 10;//a=a+10
// a /= 10;
// a *= 10;
// a -= 10;
// console.log(a);
//字符串拼接
let str = '赋值';
str += '运算符';//str=str+'运算符'
console.log(str);

//关系运算符
console.log(10 > 5);//true
console.log(10 > '5');//true
//由于字符串a不能转成数字，会返回NaN，所以结果是false
console.log(10 > 'a');//false
console.log('11' < '5');//true
console.log('11'.charCodeAt());//49
console.log('5'.charCodeAt());//53
console.log('a' > 'b');//false
console.log('a'.charCodeAt());//97
console.log('b'.charCodeAt());//98

console.log(3 == 5);//false
console.log('3' == 3);//true
console.log('3' === 3);//false 数据类型也一样是才是相等

console.log(null == undefined);//true
console.log(null === undefined);//false
console.log(NaN === NaN);//false
//不等于 不全等于
console.log('3' != 3);//false
console.log('3' !== 3);//true

// 逻辑运算符
console.log(4 < 5 && 3 > 2);//true
console.log('======');
//短路运算
//&& 短路 遇假返回第一个假值，如果没有假值，则返回最后一个真值
console.log(4 && '4');//'4'
console.log(4 && '');//''
console.log(0 && true);//0
console.log(0 && NaN && 1);//0
console.log(false && NaN && null);//false
console.log('abc' && true && 1);//1

console.log('========');
// || 短路运算 遇真返回第一个真值，如果没有真值，则返回最后一个假值
console.log(4 || '4');//4
console.log(4 || 'abc');//4
console.log('' || 'abc');//'abc'
console.log(undefined || '');//''
console.log(undefined || null || '');//''
console.log(1 || null || '');//1

console.log(4 > 5 || 2 < 3);

// let a = 10;
// console.log(0 && ++a && 123);
// console.log(a);//10

// console.log('abc' || a++ || null);//abc
// console.log(a);//10

// |  &

//! 非  取反
console.log(!(200 > 201));
console.log(!!1);
console.log(!!null);//false
console.log(Boolean(null));//false

//三目运算符 
//语法：表达式1?表达式2:表达式3
//执行思路：如果表达式1的结果为真，执行表达式2，如果为假，执行表达式3
let a = 10, b = 20;
a > b ? b++ : a++;
console.log(a, b);

// 用户输入一个数，这个数先自增，再对5取余，输出结果。
// console.log('请输入一个数');
// let num = readline.question();
// console.log(++num % 5);
// 用户输入一个数，用这个数加上10，再把这个数与50做比较，输出结果
// console.log('请输入一个数');
// let num = readline.question() - 0;
// num + 10 > 50 ? console.log('num+10大') : console.log('50大');

// 用户输入年份，判断是平年还是闰年输出结果
// console.log('请输入年');
// let year = readline.question();
// let s = (year % 100 != 0 && year % 4 === 0) ||
//     year % 400 === 0 ? '是闰年' : '是平年'
// console.log(s);

// 输入1个正整数，判断它是偶数就+1；
// console.log('请输入一个数');
// let num = readline.question() - 0;
// num % 2 === 0 ? num++ : null;
// console.log(num);

// 依次输入3个数，要求打印出其中最大的那个数
console.log('请输入三个数');
let num1 = readline.question() - 0;
let num2 = readline.question() - 0;
let num3 = readline.question() - 0;
let max = num1 > num2 ?
    num1 > num3 ? num1 : num3 :
    num2 > num3 ? num2 : num3;
console.log(max);